package com.yonyou.brigade.service;

import com.alibaba.fastjson.JSONObject;

import java.util.Map;

public interface IBrigadePublicService {
    /**
     * 友报账通过dubbo调用商旅服务的总入口
     *
     * @param json
     * @return
     */
    public String invokeService(String json);

    public String invokeService(Map invokeTypeInfo, Map params);

    /**
     * 开启商旅服务
     * @param briChannelJson
     * @return
     */
    public String openBrigade(JSONObject briChannelJson);

    /**
     * 获取单点登录url
     * @param tenant 租户
     * @param org 所在组织
     * @param phone 手机号
     * @param channel 渠道
     * @param pageType 跳转的页面类型
     * @param jsonExt 其他信息
     * @return
     */
    public String loginUrl(String tenant, String org, String phone, String channel, String pageType, String pcOrH5, String jsonExt);


    /**
     * 获取是否开通
     * @param channel   渠道 如rtpnr
     * @param tenant    租户
     * @param org   组织
     * @param extJson   其他信息
     * @return
     */
    public boolean isOpen(String channel, String tenant, String org, String extJson);

    /**
     * 转换平台注册
     *
     * @param params
     * @return boolean 注册结果
     */
//    public Msg registerOrderToConvert(Map params);

    /**
     * 获取机票订单数据
     * @param params
     * @return
     */
    public Map getBriFlightInfoDTOList(Map params);

    /**
     * 获取酒店订单数据
     * @param params
     * @return
     */
    public Map getBriHotelRoomDTOList(Map params);
    /**
     * 获取火车票订单数据
     * @param params
     * @return
     */
    public Map getBriTrainPassengerDTOList(Map params);
    /**
     * 获取火车票订单数据
     * @param params
     * @return
     */
    public Map getBriTrainTicketDTOList(Map params);

    /**
     * 获取用车订单数据
     * @param params
     * @return
     */
    public Map getBriCarOrderDTOList(Map params);

    /**
     * 获取某个租户下所有组织所开通的第三方信息
     * @param tenant
     * @param extJson
     * @return
     */
    public String tenantOpenChannels(String tenant, String extJson);

    /**
     * 同步申请单到商旅服务
     * @param tenant
     * @param org
     * @param channel
     * @param applyOrderJson
     * @return
     */
    public String pushTravelApplyOrder(String tenant, String org, String channel, JSONObject applyOrderJson);

    /**
     * 获取选项的参照
     * @param params
     * @return
     */
    public Map getMenuOptions(Map params);

    /**
     * 批量同步人员给中兴
     * @param param
     * @return
     */
    String syncEmployees4Zteitc(JSONObject param);
}
